{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<small><i>This notebook was put together by [Jake Vanderplas](http://www.vanderplas.com). Source and license info is on [GitHub](https://github.com/jakevdp/sklearn_tutorial/).</i></small>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Validation and Model Selection"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In this section, we'll look at *model evaluation* and the tuning of *hyperparameters*, which are parameters that define the model."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "from __future__ import print_function, division\n",
    "\n",
    "%matplotlib inline\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "plt.style.use('seaborn')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Validating Models\n",
    "\n",
    "One of the most important pieces of machine learning is **model validation**: that is, checking how well your model fits a given dataset. But there are some pitfalls you need to watch out for.\n",
    "\n",
    "Consider the digits example we've been looking at previously. How might we check how well our model fits the data?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.datasets import load_digits\n",
    "digits = load_digits()\n",
    "X = digits.data\n",
    "y = digits.target"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's fit a K-neighbors classifier"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',\n",
       "           metric_params=None, n_jobs=1, n_neighbors=1, p=2,\n",
       "           weights='uniform')"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.neighbors import KNeighborsClassifier\n",
    "knn = KNeighborsClassifier(n_neighbors=1)\n",
    "knn.fit(X, y)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now we'll use this classifier to *predict* labels for the data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "y_pred = knn.predict(X)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Finally, we can check how well our prediction did:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1797 / 1797 correct\n"
     ]
    }
   ],
   "source": [
    "print(\"{0} / {1} correct\".format(np.sum(y == y_pred), len(y)))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "It seems we have a perfect classifier!\n",
    "\n",
    "**Question: what's wrong with this?**"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Validation Sets\n",
    "\n",
    "Above we made the mistake of testing our data on the same set of data that was used for training. **This is not generally a good idea**. If we optimize our estimator this way, we will tend to **over-fit** the data: that is, we learn the noise.\n",
    "\n",
    "A better way to test a model is to use a hold-out set which doesn't enter the training. We've seen this before using scikit-learn's train/test split utility:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/jakevdp/anaconda/lib/python3.6/site-packages/sklearn/cross_validation.py:41: DeprecationWarning: This module was deprecated in version 0.18 in favor of the model_selection module into which all the refactored classes and functions are moved. Also note that the interface of the new CV iterators are different from that of this module. This module will be removed in 0.20.\n",
      "  \"This module will be removed in 0.20.\", DeprecationWarning)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "((1347, 64), (450, 64))"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.cross_validation import train_test_split\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y)\n",
    "X_train.shape, X_test.shape"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now we train on the training data, and validate on the test data:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "443 / 450 correct\n"
     ]
    }
   ],
   "source": [
    "knn = KNeighborsClassifier(n_neighbors=1)\n",
    "knn.fit(X_train, y_train)\n",
    "y_pred = knn.predict(X_test)\n",
    "print(\"{0} / {1} correct\".format(np.sum(y_test == y_pred), len(y_test)))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This gives us a more reliable estimate of how our model is doing.\n",
    "\n",
    "The metric we're using here, comparing the number of matches to the total number of samples, is known as the **accuracy score**, and can be computed using the following routine:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.98444444444444446"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.metrics import accuracy_score\n",
    "accuracy_score(y_test, y_pred)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This can also be computed directly from the ``model.score`` method:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.98444444444444446"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "knn.score(X_test, y_test)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Using this, we can ask how this changes as we change the model parameters, in this case the number of neighbors:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1 0.984444444444\n",
      "5 0.984444444444\n",
      "10 0.98\n",
      "20 0.966666666667\n",
      "30 0.955555555556\n"
     ]
    }
   ],
   "source": [
    "for n_neighbors in [1, 5, 10, 20, 30]:\n",
    "    knn = KNeighborsClassifier(n_neighbors)\n",
    "    knn.fit(X_train, y_train)\n",
    "    print(n_neighbors, knn.score(X_test, y_test))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We see that in this case, a small number of neighbors seems to be the best option."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Cross-Validation\n",
    "\n",
    "One problem with validation sets is that you \"lose\" some of the data. Above, we've only used 3/4 of the data for the training, and used 1/4 for the validation. Another option is to use **2-fold cross-validation**, where we split the sample in half and perform the validation twice:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "((898, 64), (899, 64))"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X1, X2, y1, y2 = train_test_split(X, y, test_size=0.5, random_state=0)\n",
    "X1.shape, X2.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.983296213808\n",
      "0.982202447164\n"
     ]
    }
   ],
   "source": [
    "print(KNeighborsClassifier(1).fit(X2, y2).score(X1, y1))\n",
    "print(KNeighborsClassifier(1).fit(X1, y1).score(X2, y2))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Thus a two-fold cross-validation gives us two estimates of the score for that parameter.\n",
    "\n",
    "Because this is a bit of a pain to do by hand, scikit-learn has a utility routine to help:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.97614938602520218"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.cross_validation import cross_val_score\n",
    "cv = cross_val_score(KNeighborsClassifier(1), X, y, cv=10)\n",
    "cv.mean()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### K-fold Cross-Validation\n",
    "\n",
    "Here we've used 2-fold cross-validation. This is just one specialization of $K$-fold cross-validation, where we split the data into $K$ chunks and perform $K$ fits, where each chunk gets a turn as the validation set.\n",
    "We can do this by changing the ``cv`` parameter above. Let's do 10-fold cross-validation:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 0.93513514,  0.99453552,  0.97237569,  0.98888889,  0.96089385,\n",
       "        0.98882682,  0.99441341,  0.98876404,  0.97175141,  0.96590909])"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cross_val_score(KNeighborsClassifier(1), X, y, cv=10)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This gives us an even better idea of how well our model is doing."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Overfitting, Underfitting and Model Selection"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now that we've gone over the basics of validation, and cross-validation, it's time to go into even more depth regarding model selection.\n",
    "\n",
    "The issues associated with validation and \n",
    "cross-validation are some of the most important\n",
    "aspects of the practice of machine learning.  Selecting the optimal model\n",
    "for your data is vital, and is a piece of the problem that is not often\n",
    "appreciated by machine learning practitioners.\n",
    "\n",
    "Of core importance is the following question:\n",
    "\n",
    "**If our estimator is underperforming, how should we move forward?**\n",
    "\n",
    "- Use simpler or more complicated model?\n",
    "- Add more features to each observed data point?\n",
    "- Add more training samples?\n",
    "\n",
    "The answer is often counter-intuitive.  In particular, **Sometimes using a\n",
    "more complicated model will give _worse_ results.**  Also, **Sometimes adding\n",
    "training data will not improve your results.**  The ability to determine\n",
    "what steps will improve your model is what separates the successful machine\n",
    "learning practitioners from the unsuccessful."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Illustration of the Bias-Variance Tradeoff\n",
    "\n",
    "For this section, we'll work with a simple 1D regression problem.  This will help us to\n",
    "easily visualize the data and the model, and the results generalize easily to  higher-dimensional\n",
    "datasets.  We'll explore a simple **linear regression** problem.\n",
    "This can be accomplished within scikit-learn with the `sklearn.linear_model` module.\n",
    "\n",
    "We'll create a simple nonlinear function that we'd like to fit"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "def test_func(x, err=0.5):\n",
    "    y = 10 - 1. / (x + 0.1)\n",
    "    if err > 0:\n",
    "        y = np.random.normal(y, err)\n",
    "    return y"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now let's create a realization of this dataset:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "def make_data(N=40, error=1.0, random_seed=1):\n",
    "    # randomly sample the data\n",
    "    np.random.seed(1)\n",
    "    X = np.random.random(N)[:, np.newaxis]\n",
    "    y = test_func(X.ravel(), error)\n",
    "    \n",
    "    return X, y"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nTkSuQmCC\n",
      "text/plain": [
       "<Figure size 576x396 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "X, y = make_data(40, error=1)\n",
    "plt.scatter(X.ravel(), y);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now say we want to perform a regression on this data.  Let's use the built-in linear regression function to compute a fit:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAd4AAAFXCAYAAAAMIS/TAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzt3Xl0lFWePvCnqlJV2fcCQlIFITHI\nToAEkB1CSgdUFDFKD4PTOm07+ptj6xl1PCPtqNPT7Tg9Lt2trdPqNDMotu1G29MJEGQJShIIYSds\nkspC1spSSaXW+/ujoCCQtai8tT2fczzHqreSurkJ9bz3vfe9X5kQQoCIiIgkIfd1A4iIiEIJg5eI\niEhCDF4iIiIJMXiJiIgkxOAlIiKSEIOXiIhIQgxeohB19OhRLF++3NfNGNCnn36KH//4x30eO3v2\nLO6++273f3feeScmTpyIoqIiCCHwn//5n8jPz8fdd9+NF198ERaLReLWE/WNwUtEfqetrQ2bNm3C\nv/7rv6K/rQYyMzPx5Zdfuv9bsGABVq9ejfz8fHz22Wf45ptv8Omnn+LLL7+ERqPB66+/LvFPQdS3\nMF83gMjbDhw4gF/+8pdISUnBhQsXEBERgR/96EfYvHkzLly4gPz8fDz//PMAgOLiYrz99tuw2WwI\nDw/Hs88+i+zsbDQ3N2PTpk1oaWlBU1MTUlNT8frrryMpKQnLly/HPffcg2+//Rb19fW4++678eST\nT97Qji1btuDjjz+GUqmEWq3GSy+9hMzMTJSVleGVV16BTCbDjBkzsHfvXvz+979HbW0tXn75Zfzp\nT39y/xxXHg/WnunTp+P06dN46qmnMH36dLz00kuor6+HzWbDqlWr3KPGLVu24L//+78RHR2NrKys\nfvvw0KFDeO2112A2myGXy/HEE09g2bJl+Oyzz/Dpp5/CbDYjOjoa99xzT6/Hmzdvxq9//Wt8/fXX\nUCgUSE9PxwsvvACNRoMNGzYgLi4O58+fx4MPPoixY8fi448/xnvvvXfD+//f//0fRo0ahWeffRa7\ndu0a9HdeXl6OwsJCbNu2DQBw/Phx5OXlITY2FgCQn5+PRx99FM8+++yg34toxAmiIPPdd9+JSZMm\niePHjwshhHj44YdFQUGBsFgsoqWlRUyZMkVcunRJXLhwQaxevVq0trYKIYSoqqoSCxYsEF1dXeLD\nDz8Uv/3tb4UQQjidTvHII4+I3/3ud0IIIZYtWyZ+/vOfCyGEuHTpkpg2bZqorq7u1Qa73S6mTJki\nGhoahBBCfP755+Ljjz8WFotFzJs3T5SUlAghhPjyyy9FVlaWMBgM4rvvvhOrVq3q9XNceTxYe371\nq1+5v27Dhg1i586dQgghenp6xIYNG8TXX38tTpw4IebPny8aGxuFEEK88MILYtmyZTf0X1tbm8jP\nzxcGg8H9My5evFjU1taKP/7xjyInJ0d0dnYKIcQNjz/99FNRUFAgurq6hBBCvPnmm+KHP/yhEEKI\nv/7rvxb/9E//NMTfonB//x/96EeDvm7dunXiiy++cD/+/PPPxZo1a0RLS4twOBzi1VdfFVOmTBnW\nexONFI54KSilpaVh8uTJAACdToeYmBioVCokJiYiKioK7e3tKCsrQ2NjIx566CH318lkMlRXV2Pj\nxo0oLy/HBx98gO+//x5nzpzBjBkz3K9bsWIFAGD06NFISkpCe3s7tFqt+7hCocDtt9+OBx54AEuX\nLsXChQuxZMkSnDhxAiqVCrfddhsA4K677sLLL7886M8zWHvmzJkDAOju7kZZWRna29vxxhtvuJ87\ndeoULl26hAULFkCj0QAACgoKsG/fvhve6/Dhw2hqasLjjz/eq19Onz4NAJg4cSKio6Pdx659vGfP\nHtx7772IjIwEAPzN3/wN3nnnHVit1l7t9KZDhw6htbUVd955p/u5NWvWoKGhARs3bkRkZCTuv/9+\nKJVKr783kScYvBSUVCpVr8dhYTf+qTudTsyfP7/X3F99fT1GjRqFf//3f8eRI0ewdu1azJ07F3a7\nvddco1qtdv+/TCbrcx7ytddeQ1VVFfbv3493330XX375JZ544okbXnulbdd/H5vN5v7/wdpzJeic\nTieEEPj4448REREBAGhtbYVarcbWrVt7fY1Coeir6+BwOJCRkYE//OEP7ucaGhqQmJiIbdu2ud/r\n+ve+8v4ymazXY7vd3udrveXPf/4z1qxZA7n86pKVtrY2rF69Go8++igAVziPGzfO6+9N5AkurqKQ\nNX/+fJSUlODcuXMAgN27d+Ouu+5CT08P9u3bh40bN2LNmjVISkrC/v374XA4hvy9W1tbsWTJEsTH\nx+Ohhx7Ck08+iaNHjyI9PR3h4eEoLi52v2draysAIDExEXV1dWhpaYEQAl9//bX7+w21PdHR0Zg5\n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\n1Bft7e1iyZIlwmKxiLa2NrF06VJfNVNS7777rli9erVYt25dr+etVqvIy8sTbW1twmKxiHvvvVc0\nNjb6qJUjjyPeITh48CAWLVoEAJg5cyaOHTvmPnbkyBFkZ2dDpVIhJiYGOp0Op06d8lVTJTFQf4wZ\nMwb/9V//BYVCAblcDrvdDrVa7aumjriB+gIA/vKXv0Amk2Hx4sW+aJ7kBuqPiooKZGVl4Re/+AXW\nr1+P5ORkJCYm+qqpI26gvoiIiMDYsWNhNpthNpshk8l81UxJ6XQ6vPXWWzc8f+7cOeh0OsTFxUGl\nUmH27NkoLy/3QQulEebrBgQCk8mE6Oho92OFQgG73Y6wsDCYTCbExMS4j0VFRcFkMvmimZIZqD+U\nSiUSExMhhMCrr76KyZMnIz093YetHVkD9UVVVRX+9Kc/4c0338Svf/1rH7ZSOgP1h9FoxIEDB/DF\nF18gMjISP/jBDzBz5syg/fsYqC8AICUlBatWrYLD4cCjjz7qq2ZKSq/Xo6am5obnQ+1zlME7BNHR\n0ejq6nI/djqd7n881x/r6urq9QcUjAbqDwCwWCx4/vnnERUVhZ/+9Ke+aKJkBuqLL774Ag0NDdi4\ncSNqa2uhVCqRmpoa1KPfgfojPj4e06ZNg0ajAQDMmTMHJ0+eDNrgHagv9uzZg8bGRuzcuRMA8PDD\nD2PWrFmYPn26T9rqa6H2OcpLzUMwa9Ys7NmzBwBw+PBhZGVluY9Nnz4dBw8ehMViQWdnJ86dO9fr\neDAaqD+EEPj7v/97TJw4ES+99BIUCoWvmimJgfrimWeewR/+8Ads3rwZ99xzDx566KGgDl1g4P6Y\nOnUqqqqq0NraCrvdjsrKSmRmZvqqqSNuoL6Ii4tDeHg4VCoV1Go1YmJi0NHR4aum+lxGRgYuXryI\ntrY2WK1WlJeXIzs729fNGjEc8Q7BypUrUVJSggceeABCCPzsZz/DBx98AJ1OhxUrVmDDhg1Yv349\nhBD4yU9+EtRzmsDA/eF0OlFaWgqr1Yq9e/cCAJ566qmg/Uc02N9GqBmsP55++mk88sgjAIDbb789\nqE9SB+uL/fv34/7774dcLsesWbOwYMECXzdZctu2bUN3dzcKCgrw3HPP4eGHH4YQAmvXrsXo0aN9\n3bwRw+pEREREEuKlZiIiIgkxeImIiCTE4CUiIpIQg5eIiEhCDF4iIiIJMXiJiIgkxOAlIiKSEIOX\niIhIQv8fzDlQhjm6kgQAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 576x396 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "X_test = np.linspace(-0.1, 1.1, 500)[:, None]\n",
    "\n",
    "from sklearn.linear_model import LinearRegression\n",
    "from sklearn.metrics import mean_squared_error\n",
    "model = LinearRegression()\n",
    "model.fit(X, y)\n",
    "y_test = model.predict(X_test)\n",
    "\n",
    "plt.scatter(X.ravel(), y)\n",
    "plt.plot(X_test.ravel(), y_test)\n",
    "plt.title(\"mean squared error: {0:.3g}\".format(mean_squared_error(model.predict(X), y)));"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We have fit a straight line to the data, but clearly this model is not a good choice.  We say that this model is **biased**, or that it **under-fits** the data.\n",
    "\n",
    "Let's try to improve this by creating a more complicated model.  We can do this by adding degrees of freedom, and computing a polynomial regression over the inputs. Scikit-learn makes this easy with the ``PolynomialFeatures`` preprocessor, which can be pipelined with a linear regression.\n",
    "\n",
    "Let's make a convenience routine to do this:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.preprocessing import PolynomialFeatures\n",
    "from sklearn.linear_model import LinearRegression\n",
    "from sklearn.pipeline import make_pipeline\n",
    "\n",
    "def PolynomialRegression(degree=2, **kwargs):\n",
    "    return make_pipeline(PolynomialFeatures(degree),\n",
    "                         LinearRegression(**kwargs))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now we'll use this to fit a quadratic curve to the data."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nl4iISEL/P3pEcDD5SjugAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 576x396 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "model = PolynomialRegression(2)\n",
    "model.fit(X, y)\n",
    "y_test = model.predict(X_test)\n",
    "\n",
    "plt.scatter(X.ravel(), y)\n",
    "plt.plot(X_test.ravel(), y_test)\n",
    "plt.title(\"mean squared error: {0:.3g}\".format(mean_squared_error(model.predict(X), y)));"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This reduces the mean squared error, and makes a much better fit.  What happens if we use an even higher-degree polynomial?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x396 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "model = PolynomialRegression(30)\n",
    "model.fit(X, y)\n",
    "y_test = model.predict(X_test)\n",
    "\n",
    "plt.scatter(X.ravel(), y)\n",
    "plt.plot(X_test.ravel(), y_test)\n",
    "plt.title(\"mean squared error: {0:.3g}\".format(mean_squared_error(model.predict(X), y)))\n",
    "plt.ylim(-4, 14);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "When we increase the degree to this extent, it's clear that the resulting fit is no longer reflecting the true underlying distribution, but is more sensitive to the noise in the training data. For this reason, we call it a **high-variance model**, and we say that it **over-fits** the data."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Just for fun, let's use IPython's interact capability (only in IPython 2.0+) to explore this interactively:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/jakevdp/anaconda/lib/python3.6/site-packages/IPython/html.py:14: ShimWarning: The `IPython.html` package has been deprecated since IPython 4.0. You should import from `notebook` instead. `IPython.html.widgets` has moved to `ipywidgets`.\n",
      "  \"`IPython.html.widgets` has moved to `ipywidgets`.\", ShimWarning)\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "d651691487f54837b3649e286dbf3884",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "A Jupyter Widget"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from IPython.html.widgets import interact\n",
    "\n",
    "def plot_fit(degree=1, Npts=50):\n",
    "    X, y = make_data(Npts, error=1)\n",
    "    X_test = np.linspace(-0.1, 1.1, 500)[:, None]\n",
    "    \n",
    "    model = PolynomialRegression(degree=degree)\n",
    "    model.fit(X, y)\n",
    "    y_test = model.predict(X_test)\n",
    "\n",
    "    plt.scatter(X.ravel(), y)\n",
    "    plt.plot(X_test.ravel(), y_test)\n",
    "    plt.ylim(-4, 14)\n",
    "    plt.title(\"mean squared error: {0:.2f}\".format(mean_squared_error(model.predict(X), y)))\n",
    "    \n",
    "interact(plot_fit, degree=[1, 30], Npts=[2, 100]);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Detecting Over-fitting with Validation Curves\n",
    "\n",
    "Clearly, computing the error on the training data is not enough (we saw this previously). As above, we can use **cross-validation** to get a better handle on how the model fit is working.\n",
    "\n",
    "Let's do this here, again using the ``validation_curve`` utility. To make things more clear, we'll use a slightly larger dataset:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x396 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "X, y = make_data(120, error=1.0)\n",
    "plt.scatter(X, y);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/jakevdp/anaconda/lib/python3.6/site-packages/sklearn/learning_curve.py:22: DeprecationWarning: This module was deprecated in version 0.18 in favor of the model_selection module into which all the functions are moved. This module will be removed in 0.20\n",
      "  DeprecationWarning)\n"
     ]
    }
   ],
   "source": [
    "from sklearn.learning_curve import validation_curve\n",
    "\n",
    "def rms_error(model, X, y):\n",
    "    y_pred = model.predict(X)\n",
    "    return np.sqrt(np.mean((y - y_pred) ** 2))\n",
    "\n",
    "degree = np.arange(0, 18)\n",
    "val_train, val_test = validation_curve(PolynomialRegression(), X, y,\n",
    "                                       'polynomialfeatures__degree', degree, cv=7,\n",
    "                                       scoring=rms_error)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now let's plot the validation curves:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n/mvnM7zRPnyb1WNxWv1JfGrxBSOW33rrGi6++G847bQVbN26hUcf/SFf/vLX+Na37iQS6ae3t4eV\nKz/JJz95UeY5Aye8rVz5SW699Va2bn2H2bPnZPaD3717J2vXfhfHcYlE+vn8579If38/O3du5847\nb+fLX/46d975FR5++Cf86U+v8PDD/4bX66WiopJbbrmdHTve4ac/fQzD0Glpac6cHDfYQw/9gNdf\n34TjOHz4w+ezatWlbNnyFt/73r24rktdXT1f+crX2bdvL9/97j1omobH4+FLX7oN13W46aYvUFFR\nyXve8z7OPPN93H//PbiuS2VlJbfc8hVM0+QrX7kFx3GwbYsvfvFWFi069n38JdhHYDqmBLsQQoyD\nlSsv5De/eYbTTlvBs88+w8qVn+TgwYN86EMf4f3vP4+OjjDXX39NVrAPeOWV/yOZTPLwwz+htbWV\n3/3uOQD27NnN9dd/gUWLFvO///tbnn12AzfddBuLFy9lzZpbMQwDSB/sdffd32Tdun+nrq6eJ598\ngkcf/SHvfe9ZtLW18JOfPIFpmjlPjvuf/3mWBx54mNraOp59dgMAd9/9Db761W8yf/4C/uu/fs7e\nvXu5++5vcPPNt7FkyXH8/ve/44EHvsN1132erq5OfvjD/8AwDK655u+55ZbbWbBgIc888yt++tNH\nOemkUwgGy7jjjjvZs2cP0WhkXP68JdhHYDoWw88REkKI0vapxReM2rsuhP/3/97DunXfo6+vlzff\nfIPPf/6LdHd38eSTj/Piiy8QCASHneo2YM+eXZx8cvrUtRkzZlBf3wBAbW09P/nJv+P1eonFYgSD\nwZzP7+npIRAIZvaLP/XU03jooXW8971nZU6O03U958lxd9zxDR566AE6Ozs588z3AtDd3cX8+QsA\n+NSnLgagoyPMkiXHAXDKKafz4IMPADBz5qzMLxj79u3hvvvS9/xt26KxcR5nnvleDh7cz80334iu\n68N+sThaEuwjkAl0QggxPlRV5dxzP8S9936Ls8/+AJqm8cQT61m+/GQ++cmLeP31TWzc+HLO586b\nN5/f//55PvaxT9HRESYcTh8S873v3cPtt9/J/PkL+OEPH6KlpTnzXo5zeJOxqqoqYrEoHR0d1NbW\n8uc/v05j48AJbSPXOZVK8cILz3HHHd/EdV0uu2wVH/rQ+dTW1nLgwH4aG+fyH//xExob51FbW8fO\n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\n",
      "text/plain": [
       "<Figure size 576x396 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "def plot_with_err(x, data, **kwargs):\n",
    "    mu, std = data.mean(1), data.std(1)\n",
    "    lines = plt.plot(x, mu, '-', **kwargs)\n",
    "    plt.fill_between(x, mu - std, mu + std, edgecolor='none',\n",
    "                     facecolor=lines[0].get_color(), alpha=0.2)\n",
    "\n",
    "plot_with_err(degree, val_train, label='training scores')\n",
    "plot_with_err(degree, val_test, label='validation scores')\n",
    "plt.xlabel('degree'); plt.ylabel('rms error')\n",
    "plt.legend();"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Notice the trend here, which is common for this type of plot.\n",
    "\n",
    "1. For a small model complexity, the training error and validation error are very similar. This indicates that the model is **under-fitting** the data: it doesn't have enough complexity to represent the data. Another way of putting it is that this is a **high-bias** model.\n",
    "\n",
    "2. As the model complexity grows, the training and validation scores diverge. This indicates that the model is **over-fitting** the data: it has so much flexibility, that it fits the noise rather than the underlying trend. Another way of putting it is that this is a **high-variance** model.\n",
    "\n",
    "3. Note that the training score (nearly) always improves with model complexity. This is because a more complicated model can fit the noise better, so the model improves. The validation data generally has a sweet spot, which here is around 5 terms.\n",
    "\n",
    "Here's our best-fit model according to the cross-validation:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\niIgowf4/3NH+ivZM9KwAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 576x396 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "model = PolynomialRegression(4).fit(X, y)\n",
    "plt.scatter(X, y)\n",
    "plt.plot(X_test, model.predict(X_test));"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Detecting Data Sufficiency with Learning Curves\n",
    "\n",
    "As you might guess, the exact turning-point of the tradeoff between bias and variance is highly dependent on the number of training points used.  Here we'll illustrate the use of *learning curves*, which display this property.\n",
    "\n",
    "The idea is to plot the mean-squared-error for the training and test set as a function of *Number of Training Points*"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.learning_curve import learning_curve\n",
    "\n",
    "def plot_learning_curve(degree=3):\n",
    "    train_sizes = np.linspace(0.05, 1, 20)\n",
    "    N_train, val_train, val_test = learning_curve(PolynomialRegression(degree),\n",
    "                                                  X, y, train_sizes, cv=5,\n",
    "                                                  scoring=rms_error)\n",
    "    plot_with_err(N_train, val_train, label='training scores')\n",
    "    plot_with_err(N_train, val_test, label='validation scores')\n",
    "    plt.xlabel('Training Set Size'); plt.ylabel('rms error')\n",
    "    plt.ylim(0, 3)\n",
    "    plt.xlim(5, 80)\n",
    "    plt.legend()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's see what the learning curves look like for a linear model:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nYwfGjx+P6upqAMCMGTOwdu1aXHTRRYPur7bWDTVP04MKIRAM6+gNRuEPaait8eTl+xaD0R6rLEtw\nO1V43XZ4nGrRB3ljo6/QRcibSjpWoLKOt5KOFai84x2OnIX6BRdcgI8//rjP836/Hz5f8h/E4/HA\n7/dn3F9nZzCr5RsKBa3XaqMAABIMSURBVMCkcdXY/VEHAiGt7OeTH2zt+MFIkOByqvA6VThtKmTT\nRMgfRijzP2tBNTb60NraW+hi5EUlHStQWcdbSccKVNbxjqTykveBcl6vF4FAMjgCgUBayBcbRbbO\nBVe57dB0A/6QDn9Iq/ju+XiQe5wqXA6VM78RERWBvIf6lClT0NLSgq6uLrjdbqxduxZLlizJdzFG\nxKYqqPUpqPHaEYoY8Ic1hMJ6xVzvLkGCy6HA47IxyImIilDeQv3FF19EMBjEggULsGzZMixZsgRC\nCMybNw/Nzc35KkZWSJKUGFxnmgL+sFa23fPxIHc7bXA7VMgyg5yIqFhJQpTGZOiFOocynPM3pd49\nHz+nLkGC06HAU+ZBXmnn5irlWIHKOt5KOlagso63JM6pl7PU7vlw1EBvqHS65yVYvQ9Ktausg5yI\nqJwx1HNAkiS4HNYAsmLunpcgwWlXEqcSxjR6K6YGTERUjhjqOSYXcPS8BAmSZFUyJAmQYN1X5OTI\ndS5xSkRUPhjqeRTvnq/1ORCK6AiENJhCWKGLlPA9KIQHfC4R2v09x+5zIqJKw1AvkHj3PBERUbaw\n75WIiKhMMNSJiIjKBEOdiIioTDDUiYiIygRDnYiIqEww1ImIiMoEQ52IiKhMMNSJiIjKBEOdiIio\nTDDUiYiIygRDnYiIqEww1ImIiMoEQ52IiKhMMNSJiIjKBEOdiIioTDDUiYiIygRDnYiIqEww1ImI\niMoEQ52IiKhMMNSJiIjKBEOdiIioTDDUiYiIygRDnYiIqEww1ImIiMoEQ52IiKhMMNSJiIjKBEOd\niIioTDDUiYiIygRDnYiIqEww1ImIiMoEQ52IiKhMMNSJiIjKBEOdiIioTDDUiYiIygRDnYiIqEww\n1ImIiMqEmqsdm6aJu+++G1u3boXdbsc999yDCRMmJLbfc889eOedd+DxeAAAK1euhM/ny1VxiIiI\nyl7OQv0vf/kLotEonnrqKaxfvx7f//738dOf/jSxfdOmTfjFL36Burq6XBWBiIioouSs+33dunU4\n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\n",
      "text/plain": [
       "<Figure size 576x396 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_learning_curve(1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This shows a typical learning curve: for very few training points, there is a large separation between the training and test error, which indicates **over-fitting**.  Given the same model, for a large number of training points, the training and testing errors converge, which indicates potential **under-fitting**.\n",
    "\n",
    "As you add more data points, the training error will never increase, and the testing error will never decrease (why do you think this is?)\n",
    "\n",
    "It is easy to see that, in this plot, if you'd like to reduce the MSE down to the nominal value of 1.0 (which is the magnitude of the scatter we put in when constructing the data), then adding more samples will *never* get you there.  For $d=1$, the two curves have converged and cannot move lower. What about for a larger value of $d$?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\noRH/B07zo+ql/oK7AAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 576x396 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_learning_curve(3)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here we see that by adding more model complexity, we've managed to lower the level of convergence to an rms error of 1.0!\n",
    "\n",
    "What if we get even more complex?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x396 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_learning_curve(10)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "For an even more complex model, we still converge, but the convergence only happens for *large* amounts of training data.\n",
    "\n",
    "So we see the following:\n",
    "\n",
    "- you can **cause the lines to converge** by adding more points or by simplifying the model.\n",
    "- you can **bring the convergence error down** only by increasing the complexity of the model.\n",
    "\n",
    "Thus these curves can give you hints about how you might improve a sub-optimal model. If the curves are already close together, you need more model complexity. If the curves are far apart, you might also improve the model by adding more data.\n",
    "\n",
    "To make this more concrete, imagine some telescope data in which the results are not robust enough.  You must think about whether to spend your valuable telescope time observing *more objects* to get a larger training set, or *more attributes of each object* in order to improve the model.  The answer to this question has real consequences, and can be addressed using these metrics."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Summary\n",
    "\n",
    "We've gone over several useful tools for model validation\n",
    "\n",
    "- The **Training Score** shows how well a model fits the data it was trained on. This is not a good indication of model effectiveness\n",
    "- The **Validation Score** shows how well a model fits hold-out data. The most effective method is some form of cross-validation, where multiple hold-out sets are used.\n",
    "- **Validation Curves** are a plot of validation score and training score as a function of **model complexity**:\n",
    "  + when the two curves are close, it indicates *underfitting*\n",
    "  + when the two curves are separated, it indicates *overfitting*\n",
    "  + the \"sweet spot\" is in the middle\n",
    "- **Learning Curves** are a plot of the validation score and training score as a function of **Number of training samples**\n",
    "  + when the curves are close, it indicates *underfitting*, and adding more data will not generally improve the estimator.\n",
    "  + when the curves are far apart, it indicates *overfitting*, and adding more data may increase the effectiveness of the model.\n",
    "  \n",
    "These tools are powerful means of evaluating your model on your data."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python [default]",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
